<template>

	<!-- top的高度等于悬浮菜单tabs的高度 -->
	<mescroll-uni @init="mescrollInit" :height="height" :down="downOption" @down="downCallback" :up="upOption"
		@up="upCallback">
		<view class="Goos-List">
			<view class="Goos-List-item" v-for="(item,index) in goods" @click="todetails(item)">
				<view class="item-img">
					<image :src="item.goodsImg" mode=""></image>
				</view>
				<view class="goodsname">{{item.goodsName}}</view>
				<view class="goodsprice"><text>¥ </text><text>{{number.oneparsePrice(item.price)}}</text></view>
			</view>

		</view>
	</mescroll-uni>
</template>

<script>
	import number from "../../../utils/number.js";
	const api = require('../../../config/api');
	const util = require('../../../utils/util');
	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
	import MescrollMoreItemMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js";

	export default {
		mixins: [MescrollMixin, MescrollMoreItemMixin], // 注意此处还需使用MescrollMoreItemMixin (必须写在MescrollMixin后面)
		data() {
			return {
				number: number, //声明number属性并赋值为引入的number模块
				agentId: '',
				testphon: '',
				auditStatus: '',
				downOption: {
					auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)
				},
				upOption: {
					auto: false, // 不自动加载
					// page: {
					// 	num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
					// 	size: 10 // 每页数据的数量
					// },
					textLoading: '加载中 ...', // 加载中的提示文本
					textNoMore: '暂无更多', // 没有更多数据的提示文本
					noMoreSize: 4, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
					empty: {
						// use: false,
						icon: "",
						tip: '~ 暂无数据 ~', // 提示
						btnText: ''
					}
				},
				goods: [] //列表数据
			}
		},
		props: {
			i: Number, // 每个tab页的专属下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)
			index: { // 当前tab的下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)
				type: Number,
				default () {
					return 0
				}
			},
			tabs: { // 为了请求数据,演示用,可根据自己的项目判断是否要传
				type: Array,
				default () {
					return []
				}
			},
			height: [Number, String] // mescroll的高度
		},
		onShow() {
			// console.log(this.agentId);

			// this.testphon = uni.getStorageSync('phone')
			this.downCallback();
			// console.log(this.testphon);
		},
		methods: {
			menuClick(index) {
				this.auditStatus = index
				this.downCallback();


			},
	
			// 代理商详情
			todetails(item) {
				uni.navigateTo({
					url: '/pages/indexChild/GoodsDetails/GoodsDetails?goodsId=' + item.id
				});
			},
			/*下拉刷新的回调 */
			downCallback() {
				// 这里加载你想下拉刷新的数据, 比如刷新轮播数据
				// loadSwiper();
				// 下拉刷新的回调,默认重置上拉加载列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
				this.mescroll.resetUpScroll()
			},
			/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
			upCallback(page) {
				//联网加载数据
				// this.mescroll.endErr();
				let keyword = this.tabs[this.i].dictValue
				let pageNum = page.num; // 页码, 默认从1开始
				let pageSize = page.size; // 页长, 默认每页10条
				const res = util.request(
					api.goodsListUrl + '/' + keyword, {
						page: pageNum,
						limit: pageSize,

					},
					'POST'
				).then(res => {
					console.log(res);
					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
					let totalPage = res.data.pages;
					this.mescroll.endByPage(res.data.length, totalPage); //必传参数(当前页的数据个数, 总页数)
					// this.mescroll.endSuccess(res.data.length);
					//设置列表数据
					if (page.num == 1) this.goods = []; //如果是第一页需手动制空列表
					this.goods = this.goods.concat(res.data); //追加新数据
				}).catch(() => {
					//联网失败, 结束加载
					this.mescroll.endErr();
				})
			},
			//点击空布局按钮的回调
			emptyClick() {
				uni.showToast({
					title: '点击了按钮,具体逻辑自行实现'
				})
			}
		}
	}
</script>
<style lang="scss" scoped>
	.Goos-List {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		padding: 0 10px;
		margin-bottom: 10px;
	}

	.Goos-List-item {
		width: 48%;
		background-color: #fff;
		border-radius: 6px;
		margin-top: 10px;
		box-shadow: 1px 1px 3px 2px rgba(0, 0, 0, 0.04);

		.item-img {
			width: 100%;
			height: 343rpx;
			image{
				width: 100%;
				height: 100%;
			}
		}
	}

	.goodsname {
		font-size: 28rpx;
		padding: 15rpx 30rpx 0 30rpx;
	}

	.goodsprice {
		padding: 0 30rpx 10rpx 30rpx;
	}

	.goodsprice>text:first-child {
		color: #E30F06;
		font-size: 22rpx;
	}

	.goodsprice>text:last-child {
		color: #E30F06;
		font-size: 28rpx;
	}
</style>